
/*
*Released on 28th June 2008.
*Any violations can be reported at paritosh@wikiocean.net
*What is treated as violations can be found at www.wikiocean.net/ppl1-voilations*
******************************************************************************
* The contents of this file are subject to POOL Public License 1.0 and later.
* POOL Public License is based on Affero GPL v3 and additional conditions.
* ("License"); You may not use this file except in compliance with the License
* You may obtain a copy of the Affero GPL v3 License at http://www.gnu.org/licenses/agpl.html
* You may obtain a copy of the POOL Public License 1.0 or later at www.wikiocean.net/license/ppl.html
* Software distributed under POOL Public License 1.0 is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Initial Developer of the Original Code is Paritosh Pungaliya (C) 2008. All Rights Reserved.
******************************************************************************
* Objective of the additional terms (license)
* 1) Is to extend the software freedom to freedom to work.
* 2) To ensure that knowledge is free from monopoly of agencies.
* 3) To avoid a situation where big corporate or investor can buy out free software groups and companies and then start milking the communities built around it.
* (this trend can be seen how the freedom is curtailed in companies that get Venture Capital funding.)
******************************************************************************
*/

package  event;

import java.util.Hashtable;

import query.query.Query;
import utility.ConvertToLower;
import database.RecordSearch;
import dbmanager.Column;
import dbmanager.DBOperation;
import dbmanager.GetIdName;

public class Querygenerator implements  Event 
{

	String type;
	DBOperation database;
	String masterid;
	String evetobject;
	String process;
	Hashtable<Object, Object> Mastermap = new Hashtable<Object, Object>();
	GetIdName gid;
	
	
	
	
	public void SetData(String Product, String type, String masterid,String userid, String Process,String datetime,String request) 
	{
		this.masterid = masterid;
		this.type = type;
		this.process =Process;
	}

	
	public boolean afterAdd() 
	{
		String queryobject = Mastermap.get("query").toString();
		Mastermap.remove("query");
		Mastermap.remove("type");
		Query query = new Query();
		query.initPool();
		query.setObject(queryobject);
		query.setProcess(process);
		query.initializeData();
		query.buildQuery();
		String strquery = query.getQuery();
		DBOperation obdatabase = new DBOperation("//192.168.1.130//openbravo");
		obdatabase.getInsert("ad_alertrule", Mastermap);
		return true;
	}

	
	public boolean afterDel() 
	{
		String queryobject = Mastermap.get("query").toString();
		Mastermap.remove("query");
		Mastermap.remove("type");
		Query query = new Query();
		query.initPool();
		query.setObject(queryobject);
		query.setProcess(process);
		query.buildQuery();
		String strquery = query.getQuery();
		DBOperation obdatabase = new DBOperation("//192.168.1.130//openbravo");
		obdatabase.getInsert("ad_alertrule", Mastermap);
		return true;
	}

	
	public boolean afterMod() 
	{
		String queryobject = Mastermap.get("query").toString();
		Mastermap.remove("query");
		Mastermap.remove("type");
		Query query = new Query();
		query.initPool();
		query.setObject(queryobject);
		query.setProcess(process);
		query.buildQuery();
		String strquery = query.getQuery();
		DBOperation obdatabase = new DBOperation("//192.168.1.130//openbravo");
		obdatabase.getInsert("ad_alertrule", Mastermap);
		return true;
	}

	
	public boolean afterView() 
	{
		return false;
	}

	
	public void initializationData() 
	{
	
	}

	
	public void setObject(String Object) 
	{
	    this.evetobject = Object;
	    RecordSearch rs = new RecordSearch();
	    Hashtable<Object, Object> Condition = new Hashtable<Object, Object>();
	    Condition.put("mid", Object);
	    String result[] = rs.getArrayFromResultSet();
	    for(int j=0;j<result.length;j++)
	    {
	    	String split[] = result[j].split("\t");
	    	String value = split[Column.pv_index-1];
	    	if(value.equals("0"))
	    		value = split[Column.vt_index-1];
	    	else
	    		value = gid.getItem(value);
	    	Mastermap.put(gid.getItem(gid.getItem(split[Column.pid_index-1])), value);
	    }
	    Mastermap = ConvertToLower.convertHashKey(Mastermap);
	}

	public static void main(String[] args) 
	{
		Querygenerator qg = new Querygenerator();
		qg.Mastermap.put("query", "11797");
		qg.afterAdd();
	}


	public void SetData(String Product, String type, String masterid,
			String userid, String Process, String datetime) 
	{
		
	}
	
}
